<?php
require_once("phpFlickr.php");                                                           
require_once("database.inc.php");

/**
 * Conecto a la base de datos y a Flickr.
 */
$flickrDB = new FlickrDatabase();
$f = new phpFlickr($flickrDB->API_KEY, $flickrDB->API_SECRET);
$f->auth();
$f->enableCache("db", $flickrDB->connectionString, $flickrDB->CACHE_SECONDS);

/**
 * Compruebo que el usuario está autenticado y pertenece
 * al grupo del concurso.
 */
$userInGroup = false;
$token = $f->auth_checkToken();
$nsid = $token['user']['nsid'];
$publicGroups = $f->people_getPublicGroups($nsid);
for ($i = 0; $i < sizeof($publicGroups); $i += 1) {
    if ($publicGroups[$i]['name'] == $flickrDB->USERGROUP) {
        $userInGroup = true;
        break;
    }
}
if (! $userInGroup) {
    $flickrDB->close();
    echo "No en " . $flickrDB->USERGROUP;
    exit();
}

 
/**
 * Compruebo si el número de parámetros es correcto.
 */
if (count($_POST) != 3) {
    $flickrDB->close();
    if ($userInGroup) { echo "¡Granaíno malo!"; }
    exit();
} else {
    // Al usuario del post no le hago caso, es para despistar :D
    $foto_id = $_POST['foto_id'];
    $puntos = $_POST['puntos'];
}

/**
* Compruebo si el votante es un narcisista.
*/
$photoInfo = $f->photos_getInfo($foto_id);
$photoOwner = $photoInfo['owner']['nsid'];
if ($nsid == $photoOwner) {
    $flickrDB->close();
    echo "¡La tuya no!";
    exit();
}

/**
* Me aseguro de que la votación está dentro de plazo.
*/
if (! $flickrDB->isOnDate()) {
    $flickrDB->close();
    echo "Fuera de plazo";
    exit();
}

/**
 * Compruebo o aplico votaciones a la foto.
 */
if ($flickrDB->checkVotada($foto_id, $nsid)) {
    $flickrDB->close();
    echo "Foto ya votada";
} else if ($flickrDB->puntosUsados($nsid, $puntos)) {
    $flickrDB->close();
    echo "Puntos ya usados";
} else {
    $flickrDB->setPuntos($foto_id, $nsid, $puntos);
    $flickrDB->close();
    echo "¡Gracias!";
}
?>

